package demo;

class circleQueue
{
    //循环队列
    public int[] elem;
    //头
    public int rear;
    //尾
    public int front;

    //用来记录已经入队的元素个数
    public int usedsize;

    //得到队头元素
    public int front()
    {
        if(isEmpty())
        {
            return -1;
        }
        return elem[front];
    }

    //得到队尾元素
    public int rear()
    {
        if(isEmpty())
        {
            return -1;
        }
        return  elem[rear];
    }
    public circleQueue(int k)           // k是循环队列的长度
    {
        elem = new int[k];
    }

    //入队列
    public Boolean input(int val)
    {
        if(isFull())
        {
            return false;
        }
        elem[rear] = val;
        rear = (rear+1) % elem.length;
        usedsize++;
        return true;
    }

    //出队列
    public Boolean delete()
    {
        if(isEmpty())
        {
            return false;
        }
        front = (front+1)% elem.length;
        return true;
    }

    //判断是否为空
    public Boolean isEmpty()
    {
        return front==rear;
    }

    //判断是否为满
    public Boolean isFull()
    {
        return usedsize == elem.length;
    }

}

public class Queue {

    public static void main(String[] args) {
        circleQueue q1 = new circleQueue(8);
        q1.input(8);
        q1.input(7);
        q1.input(6);
        q1.input(5);
        q1.input(4);
        q1.input(3);
        q1.input(2);
        q1.input(1);

        System.out.println(q1.elem.length);
        System.out.println("---------------");
        q1.delete();
        System.out.println(q1.elem[q1.front]);
      /*  for (int x =0;x< q1.elem.length;x++) {
            System.out.print(q1.elem[x]+" ");
        }*/



    }
}
